﻿using StarryEdge.Core.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StarryEdge.Core.Device
{
    public interface IDeviceFactory
    {
        IDevice GetDeviceObject(DeviceInfoModel deviceInfo);
        T GetDevice<T>(Func<DeviceInfoModel, bool> func);

        Task<bool> Connect();

        void Disconnect();
    }
}
